package persistencia;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import negocio.Alumno;
import negocio.Contacto;
import negocio.Tarea;
import negocio.Administrativo;

import java.util.ArrayList;

public class TareaDAO {

//	TODO: descripcion text   //agregar atributo a Java en Tarea y TareaDAO (se agrego en BD)
	
	private Connection c;
	private static TareaDAO instancia;
	
	private TareaDAO()
	{
		c = BDManager.getInstance().getConexion();
	}
	
	public static TareaDAO  getInstance()
	{
		if(instancia == null)
			instancia = new TareaDAO();
		return instancia;
	}
	
	
	public void guardar(Tarea t)
	{
		String query = String.format("INSERT INTO tarea(tipoevento, estado, fechatarea, horatarea, fechacumplimiento, contacto_fk, usuario_fk) "
				+ "VALUES ('" + t.getTipoEvento()+"','"+t.getEstado()+"','"+t.getFechaTarea()+"','"+t.getHoraTarea()+"'."+t.getContacto().getId()+");");
		try {
			Statement s = c.createStatement();
			s.execute(query);
			s.close();
		} catch (SQLException e) 
		{
			e.printStackTrace();
		}
	}

	public ArrayList<Tarea> getTareas(Administrativo usu) {
		String query = "SELECT * FROM tarea WHERE administrativo.id="+usu.getDni();
		ArrayList<Tarea> res = new ArrayList<Tarea>();
		try {
			Statement s = c.createStatement();
			ResultSet rs = s.executeQuery(query);
			while(rs.next())
			{
				Contacto contacto = ContactoDAO.getInstance().getContacto(rs.getString(7));
				
				//TODO:terminado
				Administrativo usuario = AdministrativoDAO.getInstance().getAdministrativo(rs.getString("usuario_fk") );//HACER CLASES USUARIO CONTROLADOR Y USUARIO DAO, LUEGO TERMINAR ESTA VARIABLE.
				
				res.add(new Tarea(rs.getInt(1), rs.getString(2),rs.getString(3),rs.getDate(4),rs.getTime(5),rs.getDate(6),contacto,usuario));
			}
			s.close();
		} 
		catch (SQLException e)
		{
			e.printStackTrace();
		}
		return res;
	}
}
